package com.room.search.service.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Objects;
import javax.persistence.Lob;
import javax.validation.constraints.*;

/**
 * A DTO for the {@link com.room.search.domain.RoomSearchGood} entity.
 */
@ApiModel(description = "房源elasticsearch表")
public class RoomSearchGoodDTO implements Serializable {

    private Long id;

    /**
     * 房屋所属类型
     */
    @Size(max = 32)
    @ApiModelProperty(value = "房屋所属类型")
    private String bkRoomType;

    /**
     * 贝壳编号
     */
    @Size(max = 32)
    @ApiModelProperty(value = "贝壳编号")
    private String bkNo;

    @Lob
    private String title;

    @Size(max = 32)
    private String price;

    /**
     * 基础属性
     */
    @ApiModelProperty(value = "基础属性")
    @Lob
    private String roomBasic;

    /**
     * 交易属性
     */
    @ApiModelProperty(value = "交易属性")
    @Lob
    private String roomTransaction;

    /**
     * 租房基本属性
     */
    @ApiModelProperty(value = "租房基本属性")
    @Lob
    private String rentBasic;

    private Long communityId;

    /**
     * 特色
     */
    @ApiModelProperty(value = "特色")
    @Lob
    private String roomFeatures;

    /**
     * 核心卖点
     */
    @ApiModelProperty(value = "核心卖点")
    @Lob
    private String roomSellPoint;

    /**
     * 小区介绍
     */
    @ApiModelProperty(value = "小区介绍")
    @Lob
    private String communityIntroduction;

    /**
     * 户型介绍
     */
    @ApiModelProperty(value = "户型介绍")
    @Lob
    private String roomIntroduction;

    /**
     * 周边配套
     */
    @ApiModelProperty(value = "周边配套")
    @Lob
    private String surroundingFacilities;

    /**
     * 交通出行
     */
    @ApiModelProperty(value = "交通出行")
    @Lob
    private String transportation;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getBkRoomType() {
        return bkRoomType;
    }

    public void setBkRoomType(String bkRoomType) {
        this.bkRoomType = bkRoomType;
    }

    public String getBkNo() {
        return bkNo;
    }

    public void setBkNo(String bkNo) {
        this.bkNo = bkNo;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getRoomBasic() {
        return roomBasic;
    }

    public void setRoomBasic(String roomBasic) {
        this.roomBasic = roomBasic;
    }

    public String getRoomTransaction() {
        return roomTransaction;
    }

    public void setRoomTransaction(String roomTransaction) {
        this.roomTransaction = roomTransaction;
    }

    public String getRentBasic() {
        return rentBasic;
    }

    public void setRentBasic(String rentBasic) {
        this.rentBasic = rentBasic;
    }

    public Long getCommunityId() {
        return communityId;
    }

    public void setCommunityId(Long communityId) {
        this.communityId = communityId;
    }

    public String getRoomFeatures() {
        return roomFeatures;
    }

    public void setRoomFeatures(String roomFeatures) {
        this.roomFeatures = roomFeatures;
    }

    public String getRoomSellPoint() {
        return roomSellPoint;
    }

    public void setRoomSellPoint(String roomSellPoint) {
        this.roomSellPoint = roomSellPoint;
    }

    public String getCommunityIntroduction() {
        return communityIntroduction;
    }

    public void setCommunityIntroduction(String communityIntroduction) {
        this.communityIntroduction = communityIntroduction;
    }

    public String getRoomIntroduction() {
        return roomIntroduction;
    }

    public void setRoomIntroduction(String roomIntroduction) {
        this.roomIntroduction = roomIntroduction;
    }

    public String getSurroundingFacilities() {
        return surroundingFacilities;
    }

    public void setSurroundingFacilities(String surroundingFacilities) {
        this.surroundingFacilities = surroundingFacilities;
    }

    public String getTransportation() {
        return transportation;
    }

    public void setTransportation(String transportation) {
        this.transportation = transportation;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof RoomSearchGoodDTO)) {
            return false;
        }

        RoomSearchGoodDTO roomSearchGoodDTO = (RoomSearchGoodDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, roomSearchGoodDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "RoomSearchGoodDTO{" +
            "id=" + getId() +
            ", bkRoomType='" + getBkRoomType() + "'" +
            ", bkNo='" + getBkNo() + "'" +
            ", title='" + getTitle() + "'" +
            ", price='" + getPrice() + "'" +
            ", roomBasic='" + getRoomBasic() + "'" +
            ", roomTransaction='" + getRoomTransaction() + "'" +
            ", rentBasic='" + getRentBasic() + "'" +
            ", communityId=" + getCommunityId() +
            ", roomFeatures='" + getRoomFeatures() + "'" +
            ", roomSellPoint='" + getRoomSellPoint() + "'" +
            ", communityIntroduction='" + getCommunityIntroduction() + "'" +
            ", roomIntroduction='" + getRoomIntroduction() + "'" +
            ", surroundingFacilities='" + getSurroundingFacilities() + "'" +
            ", transportation='" + getTransportation() + "'" +
            "}";
    }
}
